package sample.plugin;

// 导入Maven插件开发所需的基类和异常处理类

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
// 导入Maven插件注解，用于标识和配置插件目标
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;

/**
 * 此类是一个Maven插件示例，用于演示如何创建一个自定义的Maven插件目标
 * 它继承自AbstractMojo，实现了Mojo接口的基础功能
 */
@Mojo(name = "sayhi")
public class GreetingMojo extends AbstractMojo {
    /**
     * 使用Parameter注解来注入配置属性值
     * 此处的属性名是'sayhi.greeting'，默认值为'Hello World!'
     * 这个字段用于存储从配置中获取的问候语
     */
    @Parameter(property = "greeting", defaultValue = "Hello World!")
    private String greeting;

    /**
     * 执行 Mojo（Maven Plugin）的主要方法
     * 该方法重写了父类的 execute 方法，用于实现插件的具体功能
     *
     * @throws MojoExecutionException 如果执行过程中遇到错误
     */
    @Override
    public void execute() throws MojoExecutionException {
        // 打印日志信息，用于简单的调试和验证插件执行情况
        getLog().info("Hello, world. this is a hello plugin."+greeting);
    }

}
